/**
 * 文本转语音工具
 */

export const useTts = () => {
  /**
   * 播放文本内容
   * @param {string} text 要播放的文本
   * @param {Object} options 播放选项
   */
  const playText = (text, options = {}) => {
    // 默认配置
    const defaultOptions = {
      lang: 'zh-CN',
      pitch: 1.0,
      rate: 1.0,
      volume: 1.0,
      ...options
    }
    
    // 检查平台支持
    if (uni.getSystemInfoSync().platform === 'devtools') {
      console.log('开发工具中不支持语音播放，文本内容:', text)
      uni.showToast({
        title: '开发工具不支持语音播放',
        icon: 'none'
      })
      return
    }
    
    // 使用uni-app的语音播放API
    // 优先使用小程序API
    if (typeof wx !== 'undefined' && wx.createInnerAudioContext) {
      // 微信小程序环境
      const innerAudioContext = wx.createInnerAudioContext()
      // 使用微信同声传译插件，需要在小程序后台配置插件
      const plugin = requirePlugin("WechatSI")
      plugin.textToSpeech({
        lang: defaultOptions.lang,
        tts: true,
        content: text,
        success: function(res) {
          innerAudioContext.src = res.filename
          innerAudioContext.play()
        },
        fail: function(res) {
          console.log("语音转换失败", res)
          uni.showToast({
            title: '语音播放失败',
            icon: 'none'
          })
        }
      })
    } else if (typeof window !== 'undefined' && window.speechSynthesis) {
      // H5环境使用Web Speech API
      const utterance = new SpeechSynthesisUtterance(text)
      utterance.lang = defaultOptions.lang
      utterance.pitch = defaultOptions.pitch
      utterance.rate = defaultOptions.rate
      utterance.volume = defaultOptions.volume
      
      window.speechSynthesis.speak(utterance)
    } else {
      // 其他环境，使用uni.showToast提示
      uni.showToast({
        title: '当前环境不支持语音播放',
        icon: 'none'
      })
      console.log('当前环境不支持语音播放，文本内容:', text)
    }
  }

  /**
   * 停止播放
   */
  const stopPlaying = () => {
    if (typeof window !== 'undefined' && window.speechSynthesis) {
      window.speechSynthesis.cancel()
    }
  }

  return {
    playText,
    stopPlaying
  }
}